package socket

import (
	"encoding/json"
)

func HandleMessage(msg Msg) {
	defer func() {
		if e := recover(); e != nil {
			Log("Painc :", e)
		}
	}()
	data := map[string]interface{}{}
	err := json.Unmarshal(msg.Message, &data)
	if err != nil {
		Log("接收到消息:", string(msg.Message), "\n消息解析失败:", err)
		return //消息解析失败
	}
	/*
		pm := strings.Split(data["api"].(string), ":")
		if len(pm) != 2 {
			data["result"] = nil
		} else {
			args := data["args"].([]interface{})
			rs := services.CallFunc(pm[0], pm[1], args...)
			if rs != nil {
				data["result"] = rs[0]
			} else {
				data["result"] = nil
			}
		}*/
	data["result"] = nil
	resposeClient(msg, data)
}

//回复消息
func resposeClient(msg Msg, v interface{}) {
	resultByte, err := json.Marshal(v)
	if err == nil {
		n, err := msg.Conn.Write(Enpack(resultByte))
		if err != nil {
			Log("消息发送失败", err)
		} else {
			Log("发送", n, "个字节消息")
		}
	} else {
		Log("发送消息序列化失败", err)
	}
}
